package com.bizframework.core.util;

import java.io.UnsupportedEncodingException;

//import net.sourceforge.pinyin4j.PinyinHelper;
//import net.sourceforge.pinyin4j.format.HanyuPinyinCaseType;
//import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat;
//import net.sourceforge.pinyin4j.format.HanyuPinyinToneType;
//import net.sourceforge.pinyin4j.format.HanyuPinyinVCharType;
//import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination;

public class StringUtils {

	/** */
	/** 7位ASCII字符，也叫作ISO646-US、Unicode字符集的基本拉丁数字 */
	public static final String US_ASCII = "US-ASCII";
	/** */
	/** ISO拉丁字母No.1，也叫做ISO-LATIN-1 */
	public static final String ISO_8859_1 = "ISO-8859-1";
	/** */
	/** 8 位UCS 转换格式 */
	public static final String UTF_8 = "UTF-8";
	/** */
	/** 16位UCS 转换格式，Big Endian(地址存放高位字节）字节顺序 */
	public static final String UTF_16BE = "UTF-16BE";
	/** */
	/** 16位UCS 转换格式，Litter Endian（最高地址放地位字节）字节顺序 */
	public static final String UTF_16LE = "UTF-16LE";
	/** */
	/** 16位UCS 转换格式，字节顺序由可的字节顺序标记来标识 */
	public static final String UTF_16 = "UTF-16";
	/** */
	/** 中文超大字符集 **/
	public static final String GBK = "GBK";

	public static final String GB2312 = "GB2312";

	public static boolean isNullOrEmpty(String s) {
		if (s == null) {
			return true;
		}

		if (s.equals("")) {
			return true;
		}
		return false;
	}

	public static String lowerFirstChar(String source) {
		if (!isNullOrEmpty(source)) {
			return source.substring(0, 1).toLowerCase() + source.substring(1);
		}
		return source;
	}

	/** */
	/** 将字符编码转换成GBK */
	public static String toGBK(String str) throws UnsupportedEncodingException {
		return changeCharset(str, GBK);
	}

	/**
	 * 字符串编码转换的实现方法
	 * 
	 * @param str
	 *            待转换的字符串
	 * @param newCharset
	 *            目标编码
	 */
	public static String changeCharset(String str, String newCharset)
			throws UnsupportedEncodingException {
		if (str != null) {
			// 用默认字符编码解码字符串。与系统相关，中文windows默认为GB2312
			byte[] bs = str.getBytes();
			return new String(bs, newCharset); // 用新的字符编码生成字符串
		}
		return null;
	}

	/**
	 * 将汉字转换为全拼
	 * 
	 * @param src
	 * @return
	 */
	// public static String getPingYin(String src){
	//
	// char[] t1 = null;
	// t1=src.toCharArray();
	// String[] t2 = new String[t1.length];
	// HanyuPinyinOutputFormat t3 = new HanyuPinyinOutputFormat();
	// t3.setCaseType(HanyuPinyinCaseType.LOWERCASE);
	// t3.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
	// t3.setVCharType(HanyuPinyinVCharType.WITH_V);
	// String t4="";
	// int t0=t1.length;
	// try {
	// for (int i=0;i<t0;i++)
	// {
	// //判断是否为汉字字�?
	// if(java.lang.Character.toString(t1[i]).matches("[\\u4E00-\\u9FA5]+"))
	// {
	// t2 = PinyinHelper.toHanyuPinyinStringArray(t1[i], t3);
	// t4+=t2[0];
	// }
	// else
	// t4+=java.lang.Character.toString(t1[i]);
	// }
	// // System.out.println(t4);
	// return t4;
	// }
	// catch (BadHanyuPinyinOutputFormatCombination e1) {
	// e1.printStackTrace();
	// }
	// return t4;
	// }

	/**
	 * 返回中文的首字母
	 * 
	 * @param str
	 * @return
	 */
	// public static String getPinYinHeadChar(String str) {
	//
	// String convert = "";
	// for (int j = 0; j < str.length(); j++) {
	// char word = str.charAt(j);
	// String[] pinyinArray = PinyinHelper.toHanyuPinyinStringArray(word);
	// if (pinyinArray != null) {
	// convert += pinyinArray[0].charAt(0);
	// } else {
	// convert += word;
	// }
	// }
	// return convert;
	// }
}